#include <stdio.h>



#if 0
int main()
{
    int arr[10] ={0};

    printf("%d %d\n",arr[0],*(arr+0)); //arr[3][4]; *(arr+3)[4]; *(*(arr+3)+4);

    // 一维数组名，可以赋给一级指针
    // arr == &arr[0] int*
    // int *pa = &arr[0];
    int *pa = arr;

    // 能用数组名，解决的问题，用指针可以解决，而用指针解决的问题，数组名却未可。
    for (int i = 0; i<10;i++)
    {
        //        printf("%d\n",*pa++);
        //        printf("%d\n",*(pa++));
        // 先取内容再 ++
        //                printf("%d\n",*pa);
        //                pa++;
        (*pa)++;
        //        arr[0]++;
    }
    for (int i = 0; i<10;i++)
    {

        printf("%d\n",arr[i]);
    }
    return 0;
}

#endif

// 具备相同地址的指针，类型不一定相同。
//int data;
//char  *pc = (char*)&data;
//short *ps = (short*)&data;
//int   *pi = (int*)&data;

int main()
{

    int arr[3][4];
#if 0
    arr;      arr + 1;     arr + 2;
    arr[0];   arr[0]+1;    arr[0]+2;

    *arr;    *arr+1;      *arr+2;
    &arr[0]; &arr[0]+1;   &arr[0]+2;


    arr[i][j];
    (arr+i) 第 i 行的地址
    *(arr+i) 第 i 列第 0 列的地址
    *(arr+i) + j 第 i 列第 j 列的地址
    *(*(arr+i) + j) 第 i 列第 j 列的内容
#endif
}
